/*
Copyright [2020] [https://www.xiaonuo.vip]

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

  http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

Snowy采用APACHE LICENSE 2.0开源协议，您在使用过程中，需要注意以下几点：

1.请不要删除和修改根目录下的LICENSE文件。
2.请不要删除和修改Snowy源码头部的版权声明。
3.请保留源码和相关描述文件的项目出处，作者声明等。
4.分发源码时候，请注明软件出处 https://gitee.com/xiaonuobase/snowy
5.在修改包名，模块名称，项目代码等时，请注明软件出处 https://gitee.com/xiaonuobase/snowy
6.若您的项目无法满足以上几点，可申请商业授权，获取Snowy商业授权许可，请在官网购买授权，地址为 https://www.xiaonuo.vip
 */
package vip.xiaonuo.facedoor.modular.idcardhistory.entity;

import cn.afterturn.easypoi.excel.annotation.Excel;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import vip.xiaonuo.core.pojo.base.entity.BaseEntity;

import java.util.Date;

/**
 * 人证通行记录
 *
 * @author 胡鹏达
 * @date 2022-07-20 14:07:18
 */
@EqualsAndHashCode(callSuper = true)
@Data
@TableName("dw_id_card_history")
@NoArgsConstructor
@ApiModel(value = "人证通行记录结果")
public class IdCardHistory extends BaseEntity {

    /**
     * 主键
     */
    @TableId(type = IdType.ASSIGN_ID)
    @ApiModelProperty(value = "id")
    private Long id;

    /**
     * 设备ID
     */
    private Long deviceBaseId;

    /**
     * 通行人员姓名
     */
    @Excel(name = "人员姓名", width = 20)
    @ApiModelProperty(value = "人员姓名")
    private String name;

    @Excel(name = "工号", width = 20)
    @ApiModelProperty(value = "工号")
    private String jobNum;
    /**
     * 民族
     */
    private String nation;

    /**
     * 性别
     */
    @Excel(name = "性别", width = 20)
    private String sex;

    /**
     * 通行人出生日期
     */
    @Excel(name = "出生日期", width = 20)
    private String birth;

    /**
     * 通行人员住址
     */
    @Excel(name = "家庭住址", width = 20)
    private String address;

    /**
     * 身份证号
     */
    @Excel(name = "身份证号", width = 20)
    @ApiModelProperty(value = "身份证号")
    private String idCard;

    /**
     * 人员体温
     */
    @Excel(name = "人员体温", width = 20)
    @ApiModelProperty(value = "人员体温")
    private String temperature;

    /**
     * 对比结果
     */
    private String comparedResult;

    /**
     * 对比分数
     */
    private String comparedScore;

    /**
     * 对比时间
     */
    @Excel(name = "对比时间", databaseFormat = "yyyy-MM-dd HH:mm:ss", format = "yyyy-MM-dd HH:mm:ss", width = 20)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "对比时间")
    private Date comparedDate;

    /**
     * 身份证照片
     */
    @Excel(name = "身份证照片", width = 20, type = 2, height = 30)
    private String idCardImg;

    /**
     * 通行抓拍图
     */
    @Excel(name = "抓拍照", width = 20, type = 2, height = 30)
    private String image;

    /**
     * 健康码 1:绿,2:黄,3:红
     */
    @Excel(name = "健康码状态", replace = {"绿_1", "黄_2", "红_3"}, width = 20)
    @ApiModelProperty(value = "健康码状态 \"绿_1\", \"黄_2\", \"红_3\"")
    private String healthColor;

    /**
     * 是否去过风险地区描述
     */
    @Excel(name = "风险地区描述", width = 20)
    private String stopOverCity;

    /**
     * 核酸检测
     */
    @Excel(name = "核酸检测", width = 20)
    private String hsjc;

    /**
     * 核酸医院
     */
    private String hsjcHospital;

    /**
     * 核酸结果 阴性 阳性
     */
    @Excel(name = "核酸结果", width = 20)
    @ApiModelProperty(value = "核酸结果")
    private String hsjcResult;

    /**
     * 核酸时间
     */
    @Excel(name = "核酸时间", databaseFormat = "yyyy-MM-dd HH:mm:ss", format = "yyyy-MM-dd HH:mm:ss", width = 20)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "核酸时间")
    private Date hsjcTime;

    /**
     * 上传状态：0：未上传，1：已上传
     */
    private String status;

    /**
     * 行程结果 1:低风险 2:中高风险 3:无行程数据
     */
    @Excel(name = "行程结果", replace = {"低风险_1", "中高风险_2", "无行程数据_3"}, width = 20)
    @ApiModelProperty(value = "行程结果 低风险_1\", \"中高风险_2\", \"无行程数据_3")
    private String xcLevel;

    /**
     * 0 未开闸 1开闸 2 未知
     */
    private String openFlag;

    /**
     * 设备名
     */
    @Excel(name = "通行设备", width = 20)
    private String deviceName;

    /**
     * 所属区镇
     */
    private String adminDivision;

    /**
     * 主管单位
     */
    private String adminDept;

    /**
     * 脱敏身份证信息更新
     */
    private String updateStatus;

    /**
     * 手机号
     */
    private String phone;

    /**
     * 疫苗时间
     */
    @Excel(name = "疫苗时间", databaseFormat = "yyyy-MM-dd HH:mm:ss", format = "yyyy-MM-dd", width = 20)
    private Date yimiaoTime;

    /**
     * 疫苗针次
     */
    private String yimiaoResult;

    /**
     * 接口换取的完整身份证号
     */
    private String idCard1;

    /**
     * 备注信息
     */
    private String remarks;



    private Integer pushFlag;

    public IdCardHistory(Long deviceBaseId, String deviceName, String name, String sex, String nation, String birth, String address, String idCard, String temperature, String comparedResult, String comparedScore, Date comparedDate, String healthColor, String stopOverCity, String hsjc, String hsjcHospital, String hsjcResult, Date hsjcTime, String xcLevel, String openFlag) {
        this.deviceBaseId = deviceBaseId;
        this.deviceName = deviceName;
        this.name = name;
        this.sex = sex;
        this.nation = nation;
        this.birth = birth;
        this.address = address;
        this.idCard = idCard;
        this.temperature = temperature;
        this.comparedResult = comparedResult;
        this.comparedScore = comparedScore;
        this.comparedDate = comparedDate;
        this.healthColor = healthColor;
        this.stopOverCity = stopOverCity;
        this.hsjc = hsjc;
        this.hsjcHospital = hsjcHospital;
        this.hsjcResult = hsjcResult;
        this.hsjcTime = hsjcTime;
        this.xcLevel = xcLevel;
        this.openFlag = openFlag;
    }


}
